package com.example.projetoandroid;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.ParsePosition;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class ConexaoHttp {
	
	public static List<Jogo> listarJogos() throws Exception
	{
		URL url = new URL("http://10.0.2.2:9658/listaProdutos.php");
		HttpURLConnection conexao = (HttpURLConnection)url.openConnection();
		conexao.setRequestMethod("GET");
		conexao.setReadTimeout(10000);
		conexao.setConnectTimeout(15000);
		
		conexao.connect();
		if(conexao.getResponseCode() == 200)
		{
			return parseJogos(conexao.getInputStream());
		}
		return null;
	}
	
	private static String streamToString(InputStream inputStream) throws Exception {
		BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
		
		StringBuilder sBuffer = new StringBuilder();
		
		String line = null;
		while ((line = reader.readLine()) != null) {
			sBuffer.append(line);
		}
		inputStream.close();
		return sBuffer.toString();
	}
	
	public static List<Jogo> parseJogos(InputStream inputStream) throws JSONException, Exception
	{
		List<Jogo> jogos = new ArrayList<Jogo>();
		JSONArray jogosArray = new JSONArray(streamToString(inputStream));
		for(int i=0; i< jogosArray.length(); i++)
		{
			JSONObject jsonJogo = jogosArray.getJSONObject(i);
			String nomeJogo     = jsonJogo.getString("NomeProduto");
			String descJogo      = jsonJogo.getString("DescricaoProduto");
			String imgJogo   = "http://10.0.2.2:9658/upload/" + jsonJogo.getString("ImagemProduto"); 
			String empresaDesenv   = jsonJogo.getString("EmpresaDesenvolvedora"); 
			String empresaDist   = jsonJogo.getString("EmpresaDistribuidora");
			String plataformas   = jsonJogo.getString("Plataformas"); 
		
			Jogo jogo = new Jogo(nomeJogo,descJogo, imgJogo, empresaDesenv, empresaDist, plataformas);
			jogos.add(jogo);
		}
		
		return jogos;
	}

}
